An increasing number of organizations, enterprises, and individuals are utilizing cloud computing services to perform a variety of tasks. Such cloud computing services may employ multi-tenant environments and/or architectures to share a common set of computing resources (e.g., processing resources, storage resources, memory resources, network resources, etc.) among multiple tenants.
Allocation of shared computing resources is an important consideration in such a multi-tenant environment. For example, shared computing resources may need be allocated among the tenants such that no one tenant may monopolize a disproportionate amount of the shared computing resources, as this may negatively impact other tenants. As another example, a service provider may wish to allocate a larger amount of the shared computing resources to a certain tenant without unfairly burdening other tenants.
Traditional approaches to resource allocation in multi-tenant environments have several disadvantages. For example, some traditional approaches, such as rate limiting of tenant access to shared computing resources, may result in an unfair allocation of the shared computing resources among the tenants. Other traditional approaches may designate a predetermined amount of the shared computing resources for each tenant (e.g., each tenant may utilize 10 percent of the shared computing resources). Such approaches may result in poor overall utilization of the shared computing resources, particularly when tenant usage of the service may be highly variable and/or may occur in abrupt bursts. As such, the instant disclosure identifies and addresses a need for improved systems and methods for allocating shared resources in multi-tenant environments.